The present invention generally relates to input event processing in a general-purpose computer system, and particularly relates to input event translation that permits modification and re-mapping of input events from selected devices.
Computer systems typically offer one or more input devices for controlling their operations and inputting information. Common examples of these input devices include keyboards, mice, electronic tablets, etc. These devices offer reasonably good control in the context of everyday operations, but sometimes it is desirable to alter their control behavior to complement their use with a particular program, or to suit the special requirements of physically challenged persons or other users with special needs.
Moreover, certain types of control inputs favor the use of non-standard or otherwise custom input devices. For example, computer-based multi-track audio and video editing naturally favors the use of familiar editing controls, such as sliders, knobs, switches, etc. Sometimes software programs provide users with a visual facsimile of another device type. That is, the computer program is adapted to cause the computer to display a visual representation of the knobs, sliders, displays, and other controls normally associated with the type of instrument being simulated. While this offers a more intuitive (or at least familiar) representation, it still leaves operators using the familiar mouse and keyboard as the primary mechanisms for providing control input to the user.
Thus, a more intuitive control experience might be offered if the computer provided an input device that had at least some of the knobs, sliders, etc., being visually depicted onscreen. Of course, the drawback to using non-standard interfaces lies in the difficulty associated with providing input signals from them that are readily understood by the computer. Normally, the software vendor must write low-level device drivers needed to “interface” the non-standard control input with the computer. Most WINDOWS programmers are familiar with the often thankless and difficult task of writing reliable device drivers for non-standard input devices meant to control or interact with programs designed to run on computers using the WINDOWS operating system (OS). Similar efforts are required for other operating systems, such as the Macintosh OS.
Even where standard device inputs are being used, it may be desirable to alter input behaviors or re-map input events from one device to another. For example, the device control needs of a physically challenged person may be such that the mouse represents an easier mechanism for providing keyboard input or vice versa. In this context, then, the standard input from one device type must be mapped into another type of standard device input. In addition to re-mapping, or in the alternative, the input from a standard device may need to be modified, such as by filtering, attenuating, amplifying, or delaying, according to the particular needs of the given user.
Some programs have attempted to deal with subsets of these issues, such as BOME's MIDI TRANSLATOR, a program developed by the applicant of the instant application that re-maps standard MIDI input into keyboard events. In operation, the program thus enables a user to use a non-standard device, e.g., foot pedals, to generate keyboard input to the computer. However, BOME's MIDI TRANSLATOR and other existing programs leaves un-addressed the broader needs of input translation, wherein users require a universal mechanism that provides input translation, e.g., re-mapping, filtering, etc., for a wide range of standard and non-standard devices based on an easy-to-use, configurable program.